/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

/**
 *
 * @author Daniel
 */
import static com.sun.org.apache.xalan.internal.lib.ExsltDatetime.date;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author Daniel
 */
public class Socios {

    private String denominacion;
    private String NroSocioF;
    private int idSocio;
    private int NroSocio;
    private String Categoria;
    private int NroFam;
    private String Apellido;
    private String Nombre;
    private String FechaNac;    
    private String Grupo;
    private String Factor;
    private String Sexo;
    private String Tipo_Doc;
    private String Doc;
    private String Direccion;
    private String Nro;
    private String Piso;
    private String Dpto;
    private String Localidad; 
    private String Provincia;
    private String Pais;
    private String CP;
    private String TelPar;
    private String TelCel;
    private String Email;
    private String Usuario;
    private String Clave;
    private String FechaAlta;
    private String FechaBaja;
    private String DireccionUS;
    private String GrupoSang;
    private String Parentesco;
    
    public void setParentesco(String Parentesco) {
        this.Parentesco = Parentesco;
    }


    public void setNroSocioF(String NroSocioF) {
        this.NroSocioF = NroSocioF;
    }

    public String getParentesco() {
        return Parentesco;
    }

    public String getNroSocioF() {
        return NroSocioF;
    }

    public String getDenominacion() {
        return denominacion;
    }

    public int getIdSocio() {
        return idSocio;
    }

    public int getNroSocio() {
        return NroSocio;
    }

    public String getCategoria() {
        return Categoria;
    }

    public String getApellido() {
        return Apellido;
    }

    public String getNombre() {
        return Nombre;
    }

    public String getGrupo() {
        return Grupo;
    }

    public String getFactor() {
        return Factor;
    }

    public String getSexo() {
        return Sexo;
    }

    public String getTipo_Doc() {
        return Tipo_Doc;
    }

    public String getDoc() {
        return Doc;
    }

    public String getDireccion() {
        return Direccion;
    }

    public String getNro() {
        return Nro;
    }

    public String getPiso() {
        return Piso;
    }

    public String getDpto() {
        return Dpto;
    }

    public String getLocalidad() {
        return Localidad;
    }

    public String getProvincia() {
        return Provincia;
    }

    public String getPais() {
        return Pais;
    }

    public String getCP() {
        return CP;
    }
    
    public String getDireccionUS() {
        return DireccionUS;
    }
    
    public String getTelPar() {
        return TelPar;
    }

    public String getTelCel() {
        return TelCel;
    }

    public String getEmail() {
        return Email;
    }

    public String getUsuario() {
        return Usuario;
    }

    public String getClave() {
        return Clave;
    }

    public void setDenominacion(String denominacion) {
        this.denominacion = denominacion;
    }

    public void setIdSocio(int idSocio) {
        this.idSocio = idSocio;
    }

    public void setNroSocio(int NroSocio) {
        this.NroSocio = NroSocio;
    }

    public void setCategoria(String categoria) {
        this.Categoria = categoria;
    }

    public void setApellido(String Apellido) {
        this.Apellido = Apellido;
    }

    public void setNombre(String Nombre) {
        this.Nombre = Nombre;
    }

    public void setGrupo(String Grupo) {
        this.Grupo = Grupo;
    }

    public void setFactor(String Factor) {
        this.Factor = Factor;
    }

    public void setSexo(String Sexo) {
        this.Sexo = Sexo;
    }

    public void setTipo_Doc(String Tipo_Doc) {
        this.Tipo_Doc = Tipo_Doc;
    }

    public void setDoc(String Doc) {
        this.Doc = Doc;
    }

    public void setDireccion(String Direccion) {
        this.Direccion = Direccion;
    }

    public void setNro(String Nro) {
        this.Nro = Nro;
    }

    public void setPiso(String Piso) {
        this.Piso = Piso;
    }

    public void setDpto(String Dpto) {
        this.Dpto = Dpto;
    }

    public void setLocalidad(String Localidad) {
        this.Localidad = Localidad;
    }

    public void setProvincia(String Provincia) {
        this.Provincia = Provincia;
    }

    public void setPais(String Pais) {
        this.Pais = Pais;
    }

    public void setDireccionUS(String DireccionUS) {
        this.DireccionUS = DireccionUS;
    }
    
    public void setCP(String CP) {
        this.CP = CP;
    }

    public void setTelPar(String TelPar) {
        this.TelPar = TelPar;
    }

    public void setTelCel(String TelCel) {
        this.TelCel = TelCel;
    }

    public void setEmail(String Email) {
        this.Email = Email;
    }

    public void setUsuario(String Usuario) {
        this.Usuario = Usuario;
    }

    public void setClave(String Clave) {
        this.Clave = Clave;
    }

    public int getNroFam() {
        return NroFam;
    }

    public String getFechaNac() {
        return FechaNac;
    }

    public String getFechaAlta() {
        return FechaAlta;
    }

    public String getFechaBaja() {
        return FechaBaja;
    }

    public void setNroFam(int NroFam) {
        this.NroFam = NroFam;
    }

    public void setFechaNac(String FechaNac) {
        this.FechaNac = FechaNac;
    }

    public void setFechaAlta(String FechaAlta) {
        this.FechaAlta = FechaAlta;
    }

    public void setFechaBaja(String FechaBaja) {
        this.FechaBaja = FechaBaja;
    }

    public String getGrupoSang() {
        return GrupoSang;
    }

    public void setGrupoSang(String GrupoSang) {
        this.GrupoSang = GrupoSang;
    }
    
    
    public Socios() { }   
    
    public List<Socios> buscarSocio(int nroSoc){
        int status = 1;
        List<Socios> socio = new ArrayList<Socios>();
        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM socios WHERE nroSocio=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setInt(1, nroSoc);
            miRs = miStm.executeQuery();
            while(miRs.next()) {          
              Socios elsocio = new Socios();
              elsocio.setIdSocio(miRs.getInt("idSocios"));
              elsocio.setNroSocio(miRs.getInt("NroSocio"));
              elsocio.setNroFam(miRs.getInt("NroFam"));
              elsocio.setCategoria(miRs.getString("Categoria"));
              elsocio.setNombre(miRs.getString("Nombre")); 
              elsocio.setApellido(miRs.getString("Apellido"));
              elsocio.setTipo_Doc(miRs.getString("Tipo"));
              elsocio.setDoc(miRs.getString("Doc"));             
              elsocio.setFechaNac(miRs.getString("FechaNac")); 
              elsocio.setDireccion(miRs.getString("Direccion"));
              elsocio.setNro(miRs.getString("Nro"));
              elsocio.setPiso(miRs.getString("Piso"));
              elsocio.setDpto(miRs.getString("Dpto"));
              elsocio.setLocalidad(miRs.getString("Localidad"));
              elsocio.setProvincia(miRs.getString("Provincia"));
              elsocio.setPais(miRs.getString("Pais"));                
              elsocio.setCP(miRs.getString("CP"));              
              elsocio.setTelCel(miRs.getString("TelCel"));
              elsocio.setTelPar(miRs.getString("TelPart")); 
              elsocio.setSexo(miRs.getString("Sexo"));              
              elsocio.setGrupo(miRs.getString("Grupo"));
              elsocio.setFactor(miRs.getString("Factor"));
              elsocio.setEmail(miRs.getString("Email"));                 
              elsocio.setUsuario(miRs.getString("Usuario"));
              elsocio.setClave(miRs.getString("ClaveWeb"));
              elsocio.setFechaAlta(miRs.getString("FechaAlta"));
              elsocio.setDireccionUS(miRs.getString("DireccionUS"));
              elsocio.setNroSocioF(miRs.getString("NroSocioF"));
              elsocio.setGrupoSang(miRs.getString("GrupoSang"));
              elsocio.setDenominacion(miRs.getString("Denominacion"));
              elsocio.setParentesco(miRs.getString("Parentesco"));              
              socio.add(elsocio);
          }
            miRs.close();
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return socio;
    }

      public List<Socios> buscarPersona(String doc){

        List<Socios> socio = new ArrayList<Socios>();
       Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM socios WHERE doc=?";
         ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setString(1, doc);
            miRs = miStm.executeQuery();
            if(miRs.next()) {
              int nro = miRs.getInt("NroSocio");
              socio = buscarSocio(nro);
        }} catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return socio;
    } 
      
    public int insertarSocio(String Cat, String nombre, String apellido, String fechanac, String tipo, String doc, String grupo, String factor, String sexo, String dir, String nro, String piso, String dpto, String loc, String prov, String pais, String cp, String telpar, String telcel, String email, String usuario, String pass){      
        int status = 0;
        int nroSocio = 0;
        int nroFam = 0;
        String socF = null;
        String dirUS = null;
        String gruposang = null;
        String denom = null;

        String tipodoc = Normalizar(tipo);
        String ca = NormCat(Cat);
        String se = NormSexo(sexo);
        String gru = NormGrupo(grupo);
        String fa = NormFactor(factor);
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();         
        String fechaalta = sdf.format(date); 
        String fechabaja = "";
        
        if ("".equals(usuario)){
            usuario = apellido.toLowerCase();
        }
        
        if ("".equals(pass)){
            pass = doc;
        }
        
        if (("Titular".equals(ca)) || ("Adherente".equals(ca))){
            nroFam = 1;
        }
        
        int soc = buscarNro();
        nroSocio = (soc +1);
        String nroSoc = Integer.toString(nroSocio);
        String fam = Integer.toString(nroFam);
        int status2 = ActualizarSocio(nroSocio);
        
        
        int pers = buscaPersona(doc);

        if (nroSocio < 10){
            nroSoc = "0000" + nroSoc;
        }
        if ((nroSocio < 100) && (nroSocio >=10)){
            nroSoc = "000" + nroSoc;
        }
        if ((nroSocio < 1000)&&(nroSocio >= 100)){
                nroSoc = "00" + nroSoc;
        }
        if ((nroSocio < 10000)&&(nroSocio >= 1000)){
            nroSoc = "0" + nroSoc;
        }           
        
        if (nroFam<10){
            fam = "0" + fam;
        }
        
        socF = nroSoc + " / " + fam; 
        denom = apellido + ", " + nombre;
        gruposang = gru + " / " + fa;
        
        dirUS = dir + "&nbsp;&nbsp" + nro;
        if (!"".equals(piso)){        
                dirUS = dirUS + "&nbsp;&nbsp;Piso: " + piso; 
                if (!"".equals(dpto)){         
                    dirUS = dirUS + "&nbsp;&nbsp;Dpto: " + dpto; 
                }   
        }
        
        dirUS = dirUS + "&nbsp;&nbsp;&nbsp;Localidad: " + loc + "&nbsp;&nbsp;&nbsp;Provincia: " + prov + "&nbsp;&nbsp;&nbsp;País: " + pais;
        
        if (pers == 0){
            String query = "INSERT INTO Socios (NroSocio, NroFam, Categoria, Nombre, Apellido, Tipo, Doc, FechaNac, Direccion, Nro, Piso, Dpto, Localidad, Provincia, Pais, CP, TelPart, TelCel, Sexo, Grupo, Factor, Email, Usuario, ClaveWeb, FechaAlta, FechaBaja, NroSocioF, Denominacion, DireccionUS, GrupoSang) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            Connection miCnx = ConectarBD.getConnection();
            try {   
                PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
                miStm.setInt(1, nroSocio);
                miStm.setInt(2, nroFam);
                miStm.setString(3, ca);
                miStm.setString(4, nombre);
                miStm.setString(5, apellido);
                miStm.setString(6, tipodoc);
                miStm.setString(7, doc); 
                miStm.setString(8, fechanac);
                miStm.setString(9, dir); 
                miStm.setString(10, nro);                
                miStm.setString(11, piso);               
                miStm.setString(12, dpto);                
                miStm.setString(13, loc);
                miStm.setString(14, prov);
                miStm.setString(15, pais);
                miStm.setString(16, cp);
                miStm.setString(17, telpar);
                miStm.setString(18, telcel);  
                miStm.setString(19, se);               
                miStm.setString(20, gru);                
                miStm.setString(21, fa);                
                miStm.setString(22, email);
                miStm.setString(23, usuario);
                miStm.setString(24, pass);                
                miStm.setString(25, fechaalta);               
                miStm.setString(26, fechabaja);
                miStm.setString(27, socF);               
                miStm.setString(28, denom);   
                miStm.setString(29, dirUS);               
                miStm.setString(30, gruposang);                
                status = miStm.executeUpdate();
            } catch (SQLException ex) {
                ex.printStackTrace();
                status=3;
            }
        }else { status = 2;}
        return status;
        }     

    public int insertarSocioFam(int soc, String Cat, String parent, String nombre, String apellido, String fechanac, String tipo, String doc, String grupo, String factor, String sexo, String dir, String nro, String piso, String dpto, String loc, String prov, String pais, String cp, String telpar, String telcel, String email){      
        int status = 0;
        int nroFam = 0;
        String socF = null;
        String dirUS = null;
        String gruposang = null;
        String denom = null;
        String usuario = "";
        String pass = "";
        String gru = null;
        String fa = null;
        

        String tipodoc = Normalizar(tipo);
        String ca = NormCat(Cat);
        String se = NormSexo(sexo);
        String par = NormParentesco(parent);
        
        SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
        Date date = new Date();         
        String fechaalta = sdf.format(date); 
        String fechabaja = "";
        

        String nroSoc = Integer.toString(soc);
        
        if (soc < 10){
            nroSoc = "0000" + nroSoc;
        }
        if ((soc < 100) && (soc >=10)){
            nroSoc = "000" + nroSoc;
        }
        if ((soc < 1000)&&(soc >= 100)){
                nroSoc = "00" + nroSoc;
        }
        if ((soc < 10000)&&(soc >= 1000)){
            nroSoc = "0" + nroSoc;
        }
        
        if (("Familiar".equals(ca)) || ("Adherente Fam").equals(ca)){
            nroFam = buscarvalor(soc) + 1;
        }

        
        status = buscaPersona(doc);

        String fam = Integer.toString(nroFam);
        
        if (nroFam<10){
            fam = "0" + fam;
        }
        
        socF = nroSoc + " / " + fam; 
        denom = apellido + ", " + nombre;
        
        if (!"0".equals(grupo)){
           gru = NormGrupo(grupo);
           gruposang = gru;
           if (!"0".equals(factor)){
                fa = NormFactor(factor);  
                gruposang = gruposang + " / " + fa;
        }}else {gruposang = "";}
      
       
        if (!"".equals(dir)){
            dirUS = dir;
        }
        
        if (!"".equals(nro)){
            dirUS = dir + "&nbsp;&nbsp" + nro;
        }
        
        if (!"".equals(piso)){        
                dirUS = dirUS + "&nbsp;&nbsp;Piso: " + piso; 
                if (!"".equals(dpto)){         
                    dirUS = dirUS + "&nbsp;&nbsp;Dpto: " + dpto; 
                }   
        }
        
        if (!"".equals(loc)){
            dirUS = dirUS + "&nbsp;&nbsp;&nbsp;Localidad: " + loc;            
        }
        
        if (!"".equals(prov)){
            dirUS = dirUS + "&nbsp;&nbsp;&nbsp;Provincia: " + prov;            
        }       

        if (!"".equals(pais)){
            dirUS = dirUS + "&nbsp;&nbsp;&nbsp;País: " + pais;            
        }        
        
        if (status == 0){
            String query = "INSERT INTO Socios (NroSocio, NroFam, Categoria, Nombre, Apellido, Tipo, Doc, FechaNac, Direccion, Nro, Piso, Dpto, Localidad, Provincia, Pais, CP, TelPart, TelCel, Sexo, Grupo, Factor, Email, Usuario, ClaveWeb, FechaAlta, FechaBaja, NroSocioF, Denominacion, DireccionUS, GrupoSang, Parentesco) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)";
            Connection miCnx = ConectarBD.getConnection();
            try {   
                PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
                miStm.setInt(1, soc);
                miStm.setInt(2, nroFam);
                miStm.setString(3, ca);
                miStm.setString(4, nombre);
                miStm.setString(5, apellido);
                miStm.setString(6, tipodoc);
                miStm.setString(7, doc); 
                miStm.setString(8, fechanac);
                miStm.setString(9, dir); 
                miStm.setString(10, nro);                
                miStm.setString(11, piso);               
                miStm.setString(12, dpto);                
                miStm.setString(13, loc);
                miStm.setString(14, prov);
                miStm.setString(15, pais);
                miStm.setString(16, cp);
                miStm.setString(17, telpar);
                miStm.setString(18, telcel);  
                miStm.setString(19, se);               
                miStm.setString(20, gru);                
                miStm.setString(21, fa);                
                miStm.setString(22, email);
                miStm.setString(23, usuario);
                miStm.setString(24, pass);                
                miStm.setString(25, fechaalta);               
                miStm.setString(26, fechabaja);
                miStm.setString(27, socF);               
                miStm.setString(28, denom);   
                miStm.setString(29, dirUS);               
                miStm.setString(30, gruposang); 
                miStm.setString(31, par);
                status = miStm.executeUpdate();
            } catch (SQLException ex) {
                ex.printStackTrace();
                status=3;}
        }else {status = 2;}
        return status;
}     
    
    public List<Socios> modificarSocio(int n, String Cat, String nombre, String apellido, String fechanac, String tipo, String doc, String grupo, String factor, String sexo, String dir, String nro, String piso, String dpto, String loc, String prov, String pais, String cp, String telpar, String telcel, String email, String usuario, String pass){      

        int status = 0;
        int nroSocio = 0;
        int nroFam = 0;
        String socF = null;
        String dirUS = null;
        String gruposang = null;
        String denom = null;
        String ca = null;
        String fa = null;
        String gru = null;
        String se = null;
        String tipodoc = null;
        List<Socios> socio = new ArrayList<Socios>();        

        if (("1".equals(tipo))||("2".equals(tipo))||("3".equals(tipo))||("4".equals(tipo))||("5".equals(tipo))){
           tipodoc = Normalizar(tipo);
        }else{
           tipodoc = tipo; 
        }

        if (("1".equals(Cat))||("2".equals(Cat))||("3".equals(Cat))||("4".equals(Cat))){
            ca = NormCat(Cat);
        }else{
            ca = Cat; 
        }        

        if (("1".equals(sexo))||("2".equals(sexo))){
            se = NormSexo(sexo);
        }else{
            se = sexo; 
        }        

        if (("1".equals(grupo))||("2".equals(grupo))||("3".equals(grupo))||("4".equals(grupo))){
            gru = NormGrupo(grupo);
        }else{
            gru = grupo; 
        }        

        if (("1".equals(factor))||("2".equals(factor))){
            fa = NormFactor(factor);
        }else{
            fa = factor; 
        }        

       
        denom = apellido + ", " + nombre;
        gruposang = gru + " / " + fa;
        
        dirUS = dir + "&nbsp;&nbsp" + nro;
        if (!"".equals(piso)){        
                dirUS = dirUS + "&nbsp;&nbsp;Piso: " + piso; 
                if (!"".equals(dpto)){         
                    dirUS = dirUS + "&nbsp;&nbsp;Dpto: " + dpto; 
                }   
        }
        
        dirUS = dirUS + "&nbsp;&nbsp;&nbsp;Localidad: " + loc + "&nbsp;&nbsp;&nbsp;Provincia: " + prov + "&nbsp;&nbsp;&nbsp;País: " + pais;
        
            String query = "UPDATE Socios Set Categoria=?, Nombre=?, Apellido=?, Tipo=?, Doc=?, FechaNac=?, Direccion=?, Nro=?, Piso=?, Dpto=?,  Localidad=?, Provincia=?, Pais=?, CP=?, TelPart=?, TelCel=?, Sexo=?, Grupo=?, Factor=?, Email=?, Usuario=?, ClaveWeb=?, Denominacion=?, DireccionUS=?, GrupoSang=? where idSocios=?";   
            Connection miCnx = ConectarBD.getConnection();
            try {   
                PreparedStatement miStm = miCnx.prepareStatement(query); 
                miStm.setString(1, ca);
                miStm.setString(2, nombre);
                miStm.setString(3, apellido);
                miStm.setString(4, tipodoc);
                miStm.setString(5, doc); 
                miStm.setString(6, fechanac);
                miStm.setString(7, dir); 
                miStm.setString(8, nro);                
                miStm.setString(9, piso);               
                miStm.setString(10, dpto);                
                miStm.setString(11, loc);
                miStm.setString(12, prov);
                miStm.setString(13, pais);
                miStm.setString(14, cp);
                miStm.setString(15, telpar);
                miStm.setString(16, telcel);  
                miStm.setString(17, se);               
                miStm.setString(18, gru);                
                miStm.setString(19, fa);                
                miStm.setString(20, email);
                miStm.setString(21, usuario);
                miStm.setString(22, pass);
                miStm.setString(23, denom);   
                miStm.setString(24, dirUS);               
                miStm.setString(25, gruposang);  
                miStm.setInt(26, n);
                status = miStm.executeUpdate();
                if (status==1){
                   socio = buscarPersona(doc);}
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        return socio;
        }   

    public List<Socios> modificarSocioFam(int n, String Cat, String parent, String nombre, String apellido, String fechanac, String tipo, String doc, String grupo, String factor, String sexo, String dir, String nro, String piso, String dpto, String loc, String prov, String pais, String cp, String telpar, String telcel, String email){      

        int status = 0;
        String dirUS = null;
        String gruposang = null;
        String denom = null;
        String ca = null;
        String fa = null;
        String gru = null;
        String se = null;
        String tipodoc = null;
        String par = null;
        List<Socios> socio = new ArrayList<Socios>();        

        if (("1".equals(tipo))||("2".equals(tipo))||("3".equals(tipo))||("4".equals(tipo))||("5".equals(tipo))){
           tipodoc = Normalizar(tipo);
        }else{
           tipodoc = tipo; 
        }

        if (("1".equals(Cat))||("2".equals(Cat))||("3".equals(Cat))||("4".equals(Cat))){
            ca = NormCat(Cat);
        }else{
            ca = Cat; 
        }        

        if (("1".equals(sexo))||("2".equals(sexo))){
            se = NormSexo(sexo);
        }else{
            se = sexo; 
        }        

        if (("1".equals(grupo))||("2".equals(grupo))||("3".equals(grupo))||("4".equals(grupo))){
            gru = NormGrupo(grupo);
        }else{
            gru = grupo; 
        }        

        if (("1".equals(factor))||("2".equals(factor))){
            fa = NormFactor(factor);
        }else{
            fa = factor; 
        }        

         if (("1".equals(parent))||("2".equals(parent))||("3".equals(parent))||("4".equals(parent))){
            par = NormParentesco(parent);
         }else{
             par = parent;
         }
        
        denom = apellido + ", " + nombre;
        gruposang = gru + " / " + fa;
        
        dirUS = dir + "&nbsp;&nbsp" + nro;
        if (!"".equals(piso)){        
                dirUS = dirUS + "&nbsp;&nbsp;Piso: " + piso; 
                if (!"".equals(dpto)){         
                    dirUS = dirUS + "&nbsp;&nbsp;Dpto: " + dpto; 
                }   
        }
        
        dirUS = dirUS + "&nbsp;&nbsp;&nbsp;Localidad: " + loc + "&nbsp;&nbsp;&nbsp;Provincia: " + prov + "&nbsp;&nbsp;&nbsp;País: " + pais;
        
          String query = "UPDATE Socios Set Categoria=?, Nombre=?, Apellido=?, Tipo=?, Doc=?, FechaNac=?, Direccion=?, Nro=?, Piso=?, Dpto=?,  Localidad=?, Provincia=?, Pais=?, CP=?, TelPart=?, TelCel=?, Sexo=?, Grupo=?, Factor=?, Email=?, Denominacion=?, DireccionUS=?, GrupoSang=?, Parentesco=? where idSocios=?";   
            Connection miCnx = ConectarBD.getConnection();
            try {   
                PreparedStatement miStm = miCnx.prepareStatement(query); 
                miStm.setString(1, ca);
                miStm.setString(2, nombre);
                miStm.setString(3, apellido);
                miStm.setString(4, tipodoc);
                miStm.setString(5, doc); 
                miStm.setString(6, fechanac);
                miStm.setString(7, dir); 
                miStm.setString(8, nro);                
                miStm.setString(9, piso);               
                miStm.setString(10, dpto);                
                miStm.setString(11, loc);
                miStm.setString(12, prov);
                miStm.setString(13, pais);
                miStm.setString(14, cp);
                miStm.setString(15, telpar);
                miStm.setString(16, telcel);  
                miStm.setString(17, se);               
                miStm.setString(18, gru);                
                miStm.setString(19, fa);                
                miStm.setString(20, email);
                miStm.setString(21, denom);   
                miStm.setString(22, dirUS);               
                miStm.setString(23, gruposang);  
                miStm.setString(24, par);
                miStm.setInt(25, n);
                status = miStm.executeUpdate();
                if (status==1){
                   socio = buscarPersona(doc);}
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        return socio;
        }   
    
    public String Normalizar(String tipo){
       
        String doc = "";
        
        if ("1".equals(tipo)) {
            doc = "DNI";
        }

        if ("2".equals(tipo)) {
            doc = "CI";
        }      
        
        if ("3".equals(tipo)) {
            doc = "LE";
        }  
        
        if ("4".equals(tipo)) {
            doc = "LC";
        }  
        
        if ("5".equals(tipo)) {
            doc = "Pasaporte";
        }       
        
        return doc; 
    }
    
      public int buscarNro(){
          int n = 0;
          int status = 0;

        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM NroSocio ";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miRs = miStm.executeQuery();
            if(miRs.next()) {
              n = miRs.getInt("Nro");
          status = 0;
        }else status =1;
        } catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }              
         return n; 
      }   
      
    public int ActualizarSocio(int n)
    {
        int status = 0;
        
            String query = ("UPDATE NroSocio SET Nro=?");
            Connection miCnx = ConectarBD.getConnection();
            try {
                PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
                miStm.setInt(1, n);
                status = miStm.executeUpdate();
            } catch (SQLException ex) {
                status=2;
            }
        return status;
}
   
         public int buscarvalor (int nro){
             int n = 0;
        
        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT max(NroFam) as NroMax FROM socios WHERE NroSocio=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setInt(1, nro);
            miRs = miStm.executeQuery();
            if(miRs.next()) {
              n = miRs.getInt("NroMax");
        }} catch (SQLException ex) {
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
        
        
       return n;
    } 

public int buscasocio (int nro){
        int status = 0;
        
        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM socios WHERE NroSocio=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setInt(1, nro);
            miRs = miStm.executeQuery();
            if(miRs.next()) {
              status = 1;
        }} catch (SQLException ex) {
            status = 2;
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return status;
    }
          
     public int buscaPersona(String doc){
        int status = 0;
        
        Connection miCnx = ConectarBD.getConnection();
        String query = "SELECT * FROM socios WHERE doc=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setString(1, doc);
            miRs = miStm.executeQuery();
            if(miRs.next()) {
              status = 1;
        }} catch (SQLException ex) {
            status = 2;
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return status;
    } 
     
     public int EliminarSocioFam (int id){
        int status = 0;
        
        Connection miCnx = ConectarBD.getConnection();
        String query = "Delete FROM socios WHERE idSocios=?";
        ResultSet miRs = null;
        try {
            PreparedStatement miStm = (PreparedStatement) miCnx.prepareStatement(query);
            miStm.setInt(1, id);            
            status = miStm.executeUpdate();
        } catch (SQLException ex) {
            status = 2;
            Logger.getLogger(Usuario.class.getName()).log(Level.SEVERE, null, ex);
        }
       return status;
    }     
     
    public String NormSexo(String c){
       
        String sex = "";
        
        if ("1".equals(c)) {
            sex = "Masculino";
        }

        if ("2".equals(c)) {
            sex = "Femenino";
        }
      return sex; 
    } 
    
    public String NormCat(String c){
       
        String cat = "";
        
        if ("1".equals(c)) {
            cat = "Titular";
        }

        if ("2".equals(c)) {
            cat = "Familiar";
        }      
        
        if ("3".equals(c)) {
            cat = "Adherente";
        } 
        
        if ("4".equals(c)) {
            cat = "Adherente Fam";
        } 
      return cat; 
    }
    
    public String NormParentesco(String s){
       
        String paren = "";
        
        if ("1".equals(s)) {
            paren = "Esposa";
        }

        if ("2".equals(s)) {
            paren = "Hijo/a";
        }
        
        if ("3".equals(s)) {
            paren = "Nieto/a";
        }   
        
        if ("4".equals(s)) {
            paren = "Padres/Suegros";
        }           
      return paren; 
    }  

    public String NormGrupo(String g){
       
        String grp = "";
        
        if ("1".equals(g)) {
            grp = "A";
        }

        if ("2".equals(g)) {
            grp = "B";
        }      
        
        if ("3".equals(g)) {
            grp = "AB";
        }  
        
        if ("4".equals(g)) {
            grp = "0";
        }  
        return grp; 
    } 

    public String NormFactor(String f){
       
        String fac = "";
        
        if ("1".equals(f)) {
            fac = "+";
        }

        if ("2".equals(f)) {
            fac = "-";
        }      
        return fac; 
    }    
}
